package com.superm.service;

import com.superm.entity.ShelfApplication;
import com.superm.entity.ShelfApplicationPoJo;
import com.superm.entity.ShelfDetailsPoJo;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;

/**
 * 申请单业务逻辑
 */
public interface ShelfApplicationService {


    /**
     * 添加上架申请单
     *
     * @param shelfApplicationPoJo
     * @return
     */
    Map<String, Object> addShelfApplication(ShelfApplicationPoJo shelfApplicationPoJo, ShelfDetailsPoJo shelfDetailsPoJo, HttpSession httpSession);


    /**
     * 实现多上架申请单添加
     * @param shelfApplicationPoJo
     * @param shelfApplicationPoJoList
     * @return
     */
    Map<String,Object> addShelfapplications(ShelfApplicationPoJo shelfApplicationPoJo, List<String> shelfApplicationPoJoList);

    /**
     * 模糊查询上架申请单
     *
     * @param shelfApplicationPoJo
     * @return
     */
    Map<String, Object> likeShelfApplication(ShelfApplicationPoJo shelfApplicationPoJo, Integer pageNo, Integer pageSize);


    /**
     * 查询申请单条数
     *
     * @param shelfApplicationPoJo
     * @return
     */
    int selectShelfApplicationCount(ShelfApplicationPoJo shelfApplicationPoJo);


    /**
     * 审批通过
     *
     * @return
     */
    Map<String, Object> approvalBy(String sapplicationCode);


    /**
     * 审批驳回
     * @param shelfApplication
     * @return
     */
    Map<String, Object> rejectApplyFor(ShelfApplication shelfApplication);


    /**
     * 上架出库改变状态生成出库单
     * @param sapplicationCode
     * @return
     */
    Map<String,Object> putInStorage(String sapplicationCode,String remarkes);


    /**
     * 商品上架
     * @param sapplicationCode
     * @return
     */
    public Map<String,Object> goodsShelves(String sapplicationCode);
}